Overview:
-
The savez() and savez_compressed() functions of the Python NumPy module write multiple ndarray objects into a disk file.
-
While savez() writes the ndarray objects in uncompressed form, the savez_compressed() writes the arrays in compressed form.
-
For both savez() and savez_compressed(), when no file name extension is given .npz is assumed as the extension of the file.
-
Unlike savez() and savez_compressed() functions the save() function writes only one ndarray per disk file.
Example:
# Example Python program that uses numpy.savez() # Create a two-dimensional array for x in range (0, 1): # Create a three-dimensional array for x in range (0, 3): # Write both the arrays into a .npz file - Uncompressed form # Write both the arrays into a .npz file - Compressed form |
Comparing the size of .npz files - compressed vs uncompressed:
The compressed version saves the overhead of 129 bytes when compared to the uncompressed version.
-rw-r--r-- 1 root u1 412 Aug 22 14:29 multi_array_compressed.npz -rw-r--r-- 1 root u1 541 Aug 22 14:29 multi_array_uncompressed.npz |
Contents of the uncompressed file:
PK^C^D-^@^@^@^@^@^@^@!^@ ¯F´ÿÿÿÿÿÿÿÿ ^@^T^@array1.npy^A^@^P^@<84>^@^@^@^@^@^@^@<84>^@^@^@^@^@^@^@<93>NUMPY^A^@v^@{'descr': '|i1', 'fortran_order': False, 'shape': (2, 2), } ^@^A^A^APK^C^D-^@^@^@^@^@^@^@!^@À¾<95>·ÿÿÿÿÿÿÿÿ ^@^T^@array2.npy^A^@^P^@<9b>^@^@^@^@^@^@^@<9b>^@^@^@^@^@^@^@<93>NUMPY^A^@v^@{'descr': '|i1', 'fortran_order': False, 'shape': (3, 3, 3), } ^@^@^@^@^@^@^@^@^@^@^@^@^@^A^B^@^B^D^@^@^@^@^B^D^@^D^HPK^A^B-^C-^@^@^@^@^@^@^@!^@ ¯F´<84>^@^@^@<84>^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@<80>^A^@^@^@^@array1.npyPK^A^B-^C-^@^@^@^@^@^@^@!^@À¾<95>·<9b>^@^@^@<9b>^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@<80>^AÀ^@^@^@array2.npyPK^E^F^@^@^@^@^B^@^B^@p^@^@^@<97>^A^@^@^@^@ |
Contents of the compressed file:
The file is opened using the vi editor.
sudo vi multi_array_compressed.npz |
The savez_compressed() function writes everything in compressed form including the header information.
PK^C^D-^@^@^@^H^@^@^@!^@ ¯F´ÿÿÿÿÿÿÿÿ ^@^T^@array1.npy^A^@^P^@<84>^@^@^@^@^@^@^@J^@^@^@^@^@^@^@<9b>ì^Wê^[^PÉÈPÆP<9e><92>Z<9c>\¤n¥ ^<93>i¨®£ <9e><96>_TR<94><98>^W<9f>_<94><92> ^RwKÌ)N^E<8a>^Wg$^V¤^Bù^ZF: F<9a>: µ d^C.^FFFF^@PK^C^D-^@^@^@^H^@^@^@!^@À¾<95>·ÿÿÿÿÿÿÿÿ ^@^T^@array2.npy^A^@^P^@<9b>^@^@^@^@^@^@^@T^@^@^@^@^@^@^@<9b>ì^Wê^[^PÉÈPÆP<9e><92>Z<9c>\¤n¥ ^<93>i¨®£ <9e><96>_TR<94><98>^W<9f>_<94><92> ^RwKÌ)N^E<8a>^Wg$^V¤^Bù^ZÆ: ¤©£P«@^^àb@^F<8c>L^LL, ^F<90>dá^@^@PK^A^B-^C-^@^@^@^H^@^@^@!^@ ¯F´J^@^@^@<84>^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@<80>^A^@^@^@^@array1.npyPK^A^B-^C-^@^@^@^H^@^@^@!^@À¾<95>·T^@^@^@<9b>^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@<80>^A<86>^@^@^@array2.npyPK^E^F^@^@^@^@^B^@^B^@p^@^@^@^V^A^@^@^@^@ |